home *** CD-ROM | disk | FTP | other *** search
/ Amiga Collections: New Zealand Amiga Users Group / New Zealand Amiga Users Group Newsdisk v25 (1989-08)(NZAmigaUG).zip / New Zealand Amiga Users Group Newsdisk v25 (1989-08)(NZAmigaUG).adf / StrucBrowser / sb.src.zoo / SBNode.c < prev    next >
C/C++ Source or Header  |  1988-06-22  |  2KB  |  76 lines

  1. /************************************************************************
  2. *                                    *
  3. *                SBNode                    *
  4. *                                    *
  5. *        module written by G. Gagnon, Mar 24, 1987        *
  6. *                                    *
  7. *************************************************************************/
  8.  
  9. include "sb.h"
  10.  
  11. /* Fix lh_Type & lh_pad length required !!!!!!!! */
  12.  
  13. extern int level;
  14.  
  15.  
  16. void PrNode(string, node) char *string; struct Node *node;
  17. {
  18. static struct StructData structdata[] = {
  19.      { " ln_Succ",      "struct Node *",           5, PTRSIZE  },
  20.      { " ln_Pred",      "struct Node *",           5, PTRSIZE  },
  21.      { "-ln_Type",      "UBYTE",                   3, BYTESIZE },
  22.      { "-ln_Pri",       "BYTE",                    3, BYTESIZE },
  23.      { " ln_Name",      "UBYTE *",                 4, PTRSIZE  }
  24.   };
  25. int sum, choice = -1;
  26.   level++;
  27.   while (choice) {
  28.     sum = SetOptionText(string, structdata, (APTR)node, DATASIZE, 0);
  29.     switch (choice = GetChoice(DATASIZE)) {
  30.       case 1:
  31.         if (node->ln_Succ)
  32.           PrNode("Node->ln_Succ", node->ln_Succ);
  33.           break;
  34.       case 2:
  35.         if (node->ln_Pred)
  36.           PrNode("Node->ln_Pred", node->ln_Pred);
  37.           break;
  38.       case 5:
  39.         PrString("ln_Name",node->ln_Name);
  40.         break;
  41.     }
  42.   }
  43.   level--;
  44. }
  45.  
  46. void PrList(string, list) char *string; struct List *list;
  47. {
  48. static struct StructData structdata[] = {
  49.      { " lh_Head",      "struct Node *",           5, PTRSIZE  },
  50.      { " lh_Tail",      "struct Node *",           5, PTRSIZE  },
  51.      { " lh_TailPred",  "struct Node *",           5, PTRSIZE  },
  52.      { "-lh_Type",      "UBYTE",                   3, INTSIZE  },
  53.      { "-l_pad",        "UBYTE",                   3, INTSIZE  }
  54.   };
  55. int sum, choice = -1;
  56.   level++;
  57.   while (choice) {
  58.     sum = SetOptionText(string, structdata, (APTR)list, DATASIZE, 0);
  59.     switch (choice = GetChoice(DATASIZE)) {
  60.       case 1:
  61.         if (list->lh_Head)
  62.           PrNode("List->lh_Head", list->lh_Head);
  63.           break;
  64.       case 2:
  65.         if (list->lh_Tail)
  66.           PrNode("List->lh_Tail", list->lh_Tail);
  67.           break;
  68.       case 3:
  69.         if (list->lh_TailPred)
  70.           PrNode("List->lh_TailPred", list->lh_TailPred);
  71.           break;
  72.     }
  73.   }
  74.   level--;
  75. }
  76.